The present invention is generally related to network switches, and more particularly to address learning operations for multicast data units.
Network switches commonly employ an address table to facilitate the flow of data units in a network. The address table includes entries that indicate address information for various devices that are coupled with the network such as other switches, computers and printers. The address information indicates which port or ports in the switch should be employed for forwarding the data unit to a particular device in the network. Following receipt of the data unit the switch attempts to locate an entry in the address table that pertains to the destination address specified in the data unit header. If a pertinent entry is located in the address table then the information contained in that entry is employed to identify the port or ports for "forwarding" of the data unit. If a pertinent entry cannot be located in the address table then the switch may "flood" the data unit by transmitting the data unit through every port except the port on which the data unit was received. Hence, network and switch bandwidth is conserved if a pertinent entry is available in the address table.
It is known to update the address table by "learning" new address information for unicast transmissions. Each data unit includes a header portion with a source address field and a destination address field. Address information can be learned by employing the source address specified in the data unit header. If a first data unit is transmitted from a first device to a second device via the switch, and the switch does not have the address for the first device in its address table, then upon the initial transmission from the first device to the second device, the switch learns the address. If address information for the second device is also unknown, the switch floods the first data unit in order to accomplish transmission to the second device. If the second device responds by transmitting a second data unit back to the first device via the switch then the switch learns the address of the second device from the source address field of the second data unit. The switch employs the address information that was previously learned from the first device to "forward" the second data unit toward the first device via a single port. In a subsequent transmission from the first device to the second device the switch employs the learned address information for the second device to efficiently "forward" the data unit toward the second device via a single port without flooding the data unit through the network.
"Forwarding" can also be employed with multicast transmissions, e.g., where the first data unit is transmitted from the first device to a plurality of devices via the switch. However, the learning operation becomes more complex in the case of a multicast data unit. For example, determining a map of output ports for data unit forwarding is more difficult because calculations are made for each separate path upon which copies of the multicast data unit will be transmitted. Further, multicast traffic tends to be "bursty," so the processor that enables multicast learning operations may be unable to install address information for multicast flows as quickly as the flows are established through the switch. As a result, more data units may be flooded from the switch, so bandwidth use is less efficient.